package com.fansl.allround.daemon.quartz.dto;

import com.fansl.allround.common.core.constant.enums.ScheduleJobStatusEnum;
import com.fansl.allround.common.core.constant.enums.ScheduleMisfirePolicyEnum;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * @author fansl
 * @Description: 定时任务
 * @date 2020/1/13 16:23
 */
@Data
public class ScheduleJobDto implements Serializable {
    /**
     * 任务ID
     */
    private Long jobId;
    /**
     * 任务名称
     */
    @NotBlank(message = "任务名称不能为空")
    private String jobName;
    /**
     * 任务组名
     */
    @NotBlank(message = "任务组名不能为空")
    private String jobGroup;
    /**
     * 任务方法
     */
    @NotBlank(message = "任务组名不能为空")
    private String methodName;
    /**
     * 方法参数
     */
    private List<Map<String,String>> methodParams;
    /**
     * cron表达式
     */
    @NotBlank(message = "cron表达式不能为空")
    private String cronExpression;
    /**
     * cron计划策略
     */
    private ScheduleMisfirePolicyEnum misfirePolicy=ScheduleMisfirePolicyEnum.MISFIRE_DEFAULT;

    /**
     * 是否并发执行
     */
    private boolean concurrent;

    @NotNull(message = "任务状态不能为空")
    private ScheduleJobStatusEnum status;

    @NotBlank(message = "备注不能为空")
    private String remark;
}
